//package com.example.aop;
//
//import lombok.extern.slf4j.Slf4j;
//import org.apache.http.util.Args;
//import org.aspectj.lang.JoinPoint;
//import org.aspectj.lang.ProceedingJoinPoint;
//import org.aspectj.lang.Signature;
//import org.aspectj.lang.annotation.*;
//import org.springframework.core.annotation.Order;
//import org.springframework.stereotype.Component;
//
//import java.util.Arrays;
//
//@Order(2)
//@Slf4j
//@Component
//@Aspect
//public class MyAspect1 {
//    @Pointcut("execution(* com.example.service.impl.DeptServiceimpl.*(..))")
//    public void Pointcut() {}// 切点表达式
//    //@Pointcut("@annotation(com.example.aop.MyLog)")
//
//    @Before("Pointcut()")
//    void before(JoinPoint joinPoint) {
//        log.info("before");
//    }
//    @After("Pointcut()")
//    void after() {
//        log.info("after");
//    }
//    @Around("Pointcut()")
//    Object around(ProceedingJoinPoint joinPoint) throws Throwable {
//        log.info("around begin");
//        Object Result = joinPoint.proceed();
//        log.info("around end");
//
//
//        String className=joinPoint.getTarget().getClass().getName();
//        log.info("目标对象的类名,{}",className);//获取目标类名
//
//        Signature signature=joinPoint.getSignature();
//        log.info("目标方法签名,{}",signature);//获取目标方法签名
//
//        String methodName=joinPoint.getSignature().getName();
//        log.info("目标方法名,{}",methodName);//获取目标方法名
//
//        Object[] args=joinPoint.getArgs();
//        log.info("目标方法运行参数,{}", Arrays.toString(args));//获取目标方法运行传入参数
//
//        Object result = joinPoint.proceed();//目标方法执行
//        log.info("目标方法返回值,{}",result);      //目标方法运行的返回值
//
//        return Result;
//    }
//    @AfterReturning("Pointcut()")
//    void afterReturning() {
//        log.info("afterReturning");
//    }
//    @AfterThrowing("Pointcut()")
//    void afterThrowing() {
//        log.info("afterThrowing");
//    }
//}
